#66、问题：随机生成1,100内的一个整数
print('66、')
import random
print(random.randint(a=1,b=100))
print('==========================================================================')
print('\n')


#67、问题：请使用python math模块生成一个值在10至100间的随机浮点数
print('67、')
import random
print(random.random()*100)
print('==========================================================================')
print('\n')


#68、请编写一个程序输出0和10之间的随机偶数使用随机模块和列表来解
print('68、')
import random
print(random.choice([i for i in range(11)if i%2==0]))
print('==========================================================================')
print('\n')


#69、请编写程序输出一个随机数，它可以被5和7整除，在0和100之间，使用随机模块和列表解。
print('69、')
import random
print(random.choice([i for i in range(101)if i%5==0 and i%7==0]))
print('==========================================================================')
print('\n')


#70、请编写一个程序生成一个包含100到200之间的5个随机数的列表。
print('70、')
import random
print(random.sample(range(100,201),5))
print('==========================================================================')
print('\n')


#71、请编写一个程序随机生成一个列表，其中包含100到200之间的5个偶数。
print('71、')
import random
print(random.sample([i for i in range(100,201)if i%2==0],5))
print('==========================================================================')
print('\n')


#72、请编写一个程序，随机生成一个列表，从1到1000，有5个数字，可以被5和7整除。
print('72、')
import random
print(random.sample([i for i in range(1,1001)if i%5==0 and i%7==0],5))
print('==========================================================================')
print('\n')


#73、请写一个程序来随机打印一个7到15之间的整数（包括15）。
print('73、')
import random
print(random.randrange(7,16))
print('==========================================================================')
print('\n')


#74、请编写一个程序来压缩和解压字符串"hello world!hello world!hello world!"
print('74、')
import zlib
s=b'hello world!hello world!hello world!'
t=zlib.compress(s)          #压缩
print(t)
print(zlib.decompress(t))   #解压缩并打印
print('==========================================================================')
print('\n')


#75、请编写一个程序打印100次“1+1”执行的运行时间。
print('75、')
from timeit import Timer
t=Timer('for i in range(100):1+1')
print(t.timeit())
print('==========================================================================')
print('\n')


#76、请编写一个程序洗牌和打印列表[3,6,7,8]
print('76、')
from random import shuffle
li=[3,6,7,8]
shuffle(li)       #常用于验证码生成、及游戏中的特定设置
print(li)
print('==========================================================================')
print('\n')


#77、请编写一个程序 生成主语在["I","You"]，动词在["Play","Love"]中，对象在
#["Hockey","Football"]中的所有句子。
print('77、')
subjects=["I","You"]
verbs=["Play","Love"]
objects=["Hockey","Football"]
for i in range (len(subjects)):
    for j in range (len(verbs)):
        for k in range (len(objects)):
            sentence='%s %s %s.'%(subjects[i],verbs[j],objects[k])
            print(sentence)        #常用于爬虫或数据处理程序
print('==========================================================================')
print('\n')


#78、请写一个程序打印列表，然后删除偶数[5,6,77,45,22,12,24]。
print('78、')
li=[5,6,77,45,22,12,24]
li=[x for x in li if x%2!=0]
print(li)
print('==========================================================================')
print('\n')


#79、使用列表理解，请编写程序，删除[12,24,35,70,88,120,155]中可以被5和7整除的数后
#打印列表。
print('79、')
li=[12,24,35,70,88,120,155]
li=[i for i in li if i%5!=0 and i%7!=0]
print(li)
print('==========================================================================')
print('\n')


#80、使用列表理解法，请编写程序，去掉[12,24,35,70,88,120,155]中的第0,2,4,6位置上的元素
#打印列表。
print('80、')
li=[12,24,35,70,88,120,155]
li=[x for (i,x) in enumerate(li)if i%2!=0]
print(li)
print('==========================================================================')
print('\n')


#81、使用列表理解，编写一个程序生成一个358三维数组，没个元素为0。
print('81、')
import numpy as np    #numpy库主要用于高效数值计算、多为数组对象、数学函数库
array=[[[0 for col in range(8)]for col in range(5)]for row in range(4)]
print(array)
print('==========================================================================')
print('\n')


#82、利用列表理解，编写一个程序，去掉[12,24,35,70,88,120,155]中第0,4,5个数字后，打印出来
print('82、')
li=[12,24,35,70,88,120,155]
li=[x for (i,x)in enumerate(li)if i not in (0,4,5)]
print(li)
print('==========================================================================')
print('\n')


#83、使用列表理解，编写一个程序，在[12,24,35,24,70,88,120,155]中删除值24后打印列表
print('83、')
li=[12,24,35,24,70,88,120,155]
li=[x for (i,x)in enumerate(li)if x!=24]
print(li)
print('==========================================================================')
print('\n')


#84、对于两个已知链表[1,3,6,78,35,55,24]和[12,24,35,24,88,120,155]，编写一个程序来生成一个
#元素为上述两个链表交集的链表。
print('84、')
set1=set([1,3,6,78,35,55,24])
set2=set([12,24,35,24,88,120,155])
set1&=set2
li=list(set1)
print(li)
print('==========================================================================')
print('\n')


#85、对于给定的列表[12,24,35,24,88,120,155,88,120,155],编写程序来打印这个列表-删除所有
#重复的值并保留原始顺序。
print('85、')
def removelist(li):
    newli=[]
    seen=set()     #存储不重复的元素集合
    for item in li:
        if item not in seen:
            seen.add(item)
            newli.append(item)
    return newli
li=[12,24,35,24,88,120,155,88,120,155]
print(removelist(li))
print('==========================================================================')
print('\n')
